home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / PInterfaces / QD3DPick.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  7.1 KB  |  189 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DPick.p
  3.  
  4.      Contains:    Q3Pick methods                                    
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.5.4
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT QD3DPick;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __QD3DPICK__}
  27. {$SETC __QD3DPICK__ := 1}
  28.  
  29. {$I+}
  30. {$SETC QD3DPickIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __QD3D__}
  34. {$I QD3D.p}
  35. {$ENDC}
  36.  
  37. {$IFC UNDEFINED __QD3DSTYLE__}
  38. {$I QD3DStyle.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __QD3DGEOMETRY__}
  41. {$I QD3DGeometry.p}
  42. {$ENDC}
  43.  
  44.  
  45. {$PUSH}
  46. {$ALIGN POWER}
  47. {$LibExport+}
  48.  
  49. {****************************************************************************
  50.  **                                                                            **
  51.  **                            Mask bits for hit information                     **
  52.  **                                                                            **
  53.  ****************************************************************************}
  54.  
  55. TYPE
  56.     TQ3PickDetailMasks             = LONGINT;
  57. CONST
  58.     kQ3PickDetailNone            = {TQ3PickDetailMasks}0;
  59.     kQ3PickDetailMaskPickID        = {TQ3PickDetailMasks}$01;
  60.     kQ3PickDetailMaskPath        = {TQ3PickDetailMasks}$02;
  61.     kQ3PickDetailMaskObject        = {TQ3PickDetailMasks}$04;
  62.     kQ3PickDetailMaskLocalToWorldMatrix = {TQ3PickDetailMasks}$08;
  63.     kQ3PickDetailMaskXYZ        = {TQ3PickDetailMasks}$10;
  64.     kQ3PickDetailMaskDistance    = {TQ3PickDetailMasks}$20;
  65.     kQ3PickDetailMaskNormal        = {TQ3PickDetailMasks}$40;
  66.     kQ3PickDetailMaskShapePart    = {TQ3PickDetailMasks}$80;
  67.     kQ3PickDetailMaskPickPart    = {TQ3PickDetailMasks}$0100;
  68.     kQ3PickDetailMaskUV            = {TQ3PickDetailMasks}$0200;
  69.  
  70.  
  71. TYPE
  72.     TQ3PickDetail                        = UInt32;
  73. {*****************************************************************************
  74.  **                                                                             **
  75.  **                                Hitlist sorting                                 **
  76.  **                                                                             **
  77.  ****************************************************************************}
  78.     TQ3PickSort                 = LONGINT;
  79. CONST
  80.     kQ3PickSortNone                = {TQ3PickSort}0;
  81.     kQ3PickSortNearToFar        = {TQ3PickSort}1;
  82.     kQ3PickSortFarToNear        = {TQ3PickSort}2;
  83.  
  84.  
  85. {*****************************************************************************
  86.  **                                                                             **
  87.  **                    Data structures to set up the pick object                 **
  88.  **                                                                             **
  89.  ****************************************************************************}
  90.  
  91. TYPE
  92.     TQ3PickDataPtr = ^TQ3PickData;
  93.     TQ3PickData = RECORD
  94.         sort:                    TQ3PickSort;
  95.         mask:                    TQ3PickDetail;
  96.         numHitsToReturn:        UInt32;
  97.     END;
  98.  
  99.     TQ3WindowPointPickDataPtr = ^TQ3WindowPointPickData;
  100.     TQ3WindowPointPickData = RECORD
  101.         data:                    TQ3PickData;
  102.         point:                    TQ3Point2D;
  103.         vertexTolerance:        Single;
  104.         edgeTolerance:            Single;
  105.     END;
  106.  
  107.     TQ3WindowRectPickDataPtr = ^TQ3WindowRectPickData;
  108.     TQ3WindowRectPickData = RECORD
  109.         data:                    TQ3PickData;
  110.         rect:                    TQ3Area;
  111.     END;
  112.  
  113. {*****************************************************************************
  114.  **                                                                             **
  115.  **                                    Hit data                                 **
  116.  **                                                                             **
  117.  ****************************************************************************}
  118.     TQ3HitPathPtr = ^TQ3HitPath;
  119.     TQ3HitPath = RECORD
  120.         rootGroup:                TQ3GroupObject;
  121.         depth:                    UInt32;
  122.         positions:                TQ3GroupPositionPtr;
  123.     END;
  124.  
  125. {*****************************************************************************
  126.  **                                                                             **
  127.  **                                Pick class methods                             **
  128.  **                                                                             **
  129.  ****************************************************************************}
  130. FUNCTION Q3Pick_GetType(pick: TQ3PickObject): TQ3ObjectType; C;
  131. FUNCTION Q3Pick_GetData(pick: TQ3PickObject; VAR data: TQ3PickData): TQ3Status; C;
  132. FUNCTION Q3Pick_SetData(pick: TQ3PickObject; {CONST}VAR data: TQ3PickData): TQ3Status; C;
  133. FUNCTION Q3Pick_GetVertexTolerance(pick: TQ3PickObject; VAR vertexTolerance: Single): TQ3Status; C;
  134. FUNCTION Q3Pick_GetEdgeTolerance(pick: TQ3PickObject; VAR edgeTolerance: Single): TQ3Status; C;
  135. FUNCTION Q3Pick_SetVertexTolerance(pick: TQ3PickObject; vertexTolerance: Single): TQ3Status; C;
  136. FUNCTION Q3Pick_SetEdgeTolerance(pick: TQ3PickObject; edgeTolerance: Single): TQ3Status; C;
  137. FUNCTION Q3Pick_GetNumHits(pick: TQ3PickObject; VAR numHits: UInt32): TQ3Status; C;
  138. FUNCTION Q3Pick_EmptyHitList(pick: TQ3PickObject): TQ3Status; C;
  139. FUNCTION Q3Pick_GetPickDetailValidMask(pick: TQ3PickObject; index: UInt32; VAR pickDetailValidMask: TQ3PickDetail): TQ3Status; C;
  140. FUNCTION Q3Pick_GetPickDetailData(pick: TQ3PickObject; index: UInt32; pickDetailValue: TQ3PickDetail; detailData: UNIV Ptr): TQ3Status; C;
  141. FUNCTION Q3HitPath_EmptyData(VAR hitPath: TQ3HitPath): TQ3Status; C;
  142. {*****************************************************************************
  143.  **                                                                             **
  144.  **                            Window point pick methods                         **
  145.  **                                                                             **
  146.  ****************************************************************************}
  147. FUNCTION Q3WindowPointPick_New({CONST}VAR data: TQ3WindowPointPickData): TQ3PickObject; C;
  148. FUNCTION Q3WindowPointPick_GetPoint(pick: TQ3PickObject; VAR point: TQ3Point2D): TQ3Status; C;
  149. FUNCTION Q3WindowPointPick_SetPoint(pick: TQ3PickObject; {CONST}VAR point: TQ3Point2D): TQ3Status; C;
  150. FUNCTION Q3WindowPointPick_GetData(pick: TQ3PickObject; VAR data: TQ3WindowPointPickData): TQ3Status; C;
  151. FUNCTION Q3WindowPointPick_SetData(pick: TQ3PickObject; {CONST}VAR data: TQ3WindowPointPickData): TQ3Status; C;
  152.  
  153. {*****************************************************************************
  154.  **                                                                             **
  155.  **                            Window rect pick methods                         **
  156.  **                                                                             **
  157.  ****************************************************************************}
  158. FUNCTION Q3WindowRectPick_New({CONST}VAR data: TQ3WindowRectPickData): TQ3PickObject; C;
  159. FUNCTION Q3WindowRectPick_GetRect(pick: TQ3PickObject; VAR rect: TQ3Area): TQ3Status; C;
  160. FUNCTION Q3WindowRectPick_SetRect(pick: TQ3PickObject; {CONST}VAR rect: TQ3Area): TQ3Status; C;
  161. FUNCTION Q3WindowRectPick_GetData(pick: TQ3PickObject; VAR data: TQ3WindowRectPickData): TQ3Status; C;
  162. FUNCTION Q3WindowRectPick_SetData(pick: TQ3PickObject; {CONST}VAR data: TQ3WindowRectPickData): TQ3Status; C;
  163.  
  164.  
  165. {*****************************************************************************
  166.  **                                                                             **
  167.  **                                Shape Part methods                             **
  168.  **                                                                             **
  169.  ****************************************************************************}
  170. FUNCTION Q3ShapePart_GetType(shapePartObject: TQ3ShapePartObject): TQ3ObjectType; C;
  171. FUNCTION Q3MeshPart_GetType(meshPartObject: TQ3MeshPartObject): TQ3ObjectType; C;
  172. FUNCTION Q3ShapePart_GetShape(shapePartObject: TQ3ShapePartObject; VAR shapeObject: TQ3ShapeObject): TQ3Status; C;
  173. FUNCTION Q3MeshPart_GetComponent(meshPartObject: TQ3MeshPartObject; VAR component: TQ3MeshComponent): TQ3Status; C;
  174. FUNCTION Q3MeshFacePart_GetFace(meshFacePartObject: TQ3MeshFacePartObject; VAR face: TQ3MeshFace): TQ3Status; C;
  175. FUNCTION Q3MeshEdgePart_GetEdge(meshEdgePartObject: TQ3MeshEdgePartObject; VAR edge: TQ3MeshEdge): TQ3Status; C;
  176. FUNCTION Q3MeshVertexPart_GetVertex(meshVertexPartObject: TQ3MeshVertexPartObject; VAR vertex: TQ3MeshVertex): TQ3Status; C;
  177.  
  178.  
  179. {$ALIGN RESET}
  180. {$POP}
  181.  
  182. {$SETC UsingIncludes := QD3DPickIncludes}
  183.  
  184. {$ENDC} {__QD3DPICK__}
  185.  
  186. {$IFC NOT UsingIncludes}
  187.  END.
  188. {$ENDC}
  189.